Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma (2015-07-31)

Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma (2015-07-31)

  • Downloads:2580
  • Type:Epub+TxT+PDF+Mobi
  • Create Date:2021-04-22 10:51:44
  • Update Date:2025-09-06
  • Status:finish
  • Author:Erich Gamma
  • ISBN:9332555400
  • Environment:PC/Android/iPhone/iPad/Kindle

Summary

Design Patterns is a modern classic in the literature of object-oriented development, offering timeless and elegant solutions to common problems in software design。 It describes patterns for managing object creation, composing objects into larger structures, and coordinating control flow between objects。 The book provides numerous examples where using composition rather than inheritance can improve the reusability and flexibility of code。 Note, though, that it's not a tutorial but a catalog that you can use to find an object-oriented design pattern that's appropriate for the needs of your particular application--a selection for virtuoso programmers who appreciate (or require) consistent, well-engineered object-oriented designs。

Download

Reviews

Punyapat Sessomboon

Must read for DevSo many information on the internet already, it good to read the original though。 Most of the pattern are used in my daily basis。 Some of which I’ve never know their names before。

Jan Jaap

after A Pattern Language / Christopher Alexander classics

Edouard V

A must read for any serious object oriented programmer

Dhaval Chheda

This book is really good for programming。 It is recommended for those who want to upskill their current programming knowledge。 This book teaches you how to modularize your code by utilizing different patterns and provides you will an elegant solution for repetitive tasks。 It is quite a technical book and mainly focuses on User Interface examples。 Hence, a follow-up with different books such as the Head First series, is recommended。 Overall highly recommended。

Dennis

It has been a long time that I read this book but I remember it fondly and I think it has not lost it relevance :)。

Marvin

Ein Klassiker - aber es werden (wissentlich) viele spannende Bereiche wie nebenläufige Programmierung als Spezialfälle bezeichnet und übersprungen。

Pablo Weremczuk

I was told to read the book since the year 2009 and finally manage to get a copy and the time to put do it。The last mayor version of this book was released in 1992, since then, only minor changes were introduced, and hold on pretty well。As I said, this book was on my list since 2009, and I remember about it from a video from Casey Muratory making fun of "enterprise design patterns"。 Since his points sounded reasonable, I said to my self, "ok, let's see if this old book makes sense in modern time I was told to read the book since the year 2009 and finally manage to get a copy and the time to put do it。The last mayor version of this book was released in 1992, since then, only minor changes were introduced, and hold on pretty well。As I said, this book was on my list since 2009, and I remember about it from a video from Casey Muratory making fun of "enterprise design patterns"。 Since his points sounded reasonable, I said to my self, "ok, let's see if this old book makes sense in modern times", and it totally does。First of all, this book is very well written, the first thing that you read from this book is "this design patterns catalog is incomplete, there are several fields where this patterns does not fit", and it's true, if you are going to bild high performance software this matterns will not make sense。 Since they are implemented creating abstractions and chasing pointers, this way of programming is not compatible with high performance projects(IMHO)。But here's the thing, this paterns will make your software easier to maintain。 Most of the software nowadays is built this way, speccially the software that handles money。 This are the colors used in the canvas of modern software industry, and, once you learn the color's names, you start to identify them everywhere you see。Once again, the book is very well written, it can be read from cover to cover(as I did), but is also can be used as reference material, there is a special section where there is a list of the patterns and when to use them, so you can read and refresh your knowledge about them。This is one of those books that will make you a better programmer。 。。。more

Gerda Diteriha

For a book from 1994 I think it is great。 Some examples do seem irrelevant and I mostly don't read "Known uses" sections, since those really are out of date。 But all in all I do think this is a very good reference book, the vocabulary and overall structure of patterns has not changed in past 30 years, for those who know something already about design patterns this might be an interesting book。 For a book from 1994 I think it is great。 Some examples do seem irrelevant and I mostly don't read "Known uses" sections, since those really are out of date。 But all in all I do think this is a very good reference book, the vocabulary and overall structure of patterns has not changed in past 30 years, for those who know something already about design patterns this might be an interesting book。 。。。more

Arquero

Patterns are truly like constellations in the night sky。 They are made-up for sure, but are essential to navigate the sea of code )Though it wasn't an easy read, it was absolutely worth the time。 Patterns are truly like constellations in the night sky。 They are made-up for sure, but are essential to navigate the sea of code )Though it wasn't an easy read, it was absolutely worth the time。 。。。more

Johan

must have for every software developer!

Alexander Schade

I wish I read this book earlier in my career。 While I doubt that I’ll use all of these patterns, understanding the trade offs and having a shared vocabulary that you can use in your designs will make it easier for others to understand the software decisions you make。 I can reflect on several instances where I could have created less tech debt had I used some of the strategies in this book。 The only real critique I’ll leave here is that the example code is often using programming languages that a I wish I read this book earlier in my career。 While I doubt that I’ll use all of these patterns, understanding the trade offs and having a shared vocabulary that you can use in your designs will make it easier for others to understand the software decisions you make。 I can reflect on several instances where I could have created less tech debt had I used some of the strategies in this book。 The only real critique I’ll leave here is that the example code is often using programming languages that are a little outdated at this point。 They would be a little easier to follow if they were in a more widely used programming language like Java。 。。。more

mahmoud Abu Khader

How much you benefit from this book depends on your experience。 For my i found couple of patterns already used b heart in my daily C++ development work。 Others were new to me。

Aiayumi

This is more like a glossary to check on when needed。 But alas, good to have an overall view, you are not required to memorize all of them in details。--IntroductionDesign patterns are basically pre-thought-out design solutions made readily available to you that provides some built-in guarantees on extensibility, flexibility for future changes。You can use it in application designs, toolkit, or framework designs。Takeaways:- Consider consequences and tradeoffs。 Performance cost, impact on system fu This is more like a glossary to check on when needed。 But alas, good to have an overall view, you are not required to memorize all of them in details。--IntroductionDesign patterns are basically pre-thought-out design solutions made readily available to you that provides some built-in guarantees on extensibility, flexibility for future changes。You can use it in application designs, toolkit, or framework designs。Takeaways:- Consider consequences and tradeoffs。 Performance cost, impact on system future。- Composition > Inheritance: allows dynamic binding, dependency injections- Programming to an interface, not an implementation 。。。more

Arina

I had to read it cover to cover, although it took so much time。 And it will definitely be a good reference book。

John Doe

It's a reference book。 Which means it is not supposed to be read line by line。I read through first chapter carefully and fast read chapter 2。 Not gonna write a text editor myself。 Then very quickly scan through the catalog part。 The gem of this book is the classification of all the common patterns。 And many tables and graphs which give a big picture feeling about those patterns。 Besides, I catched many new terms from this book。 Toolkit framework etc。 Great help to building concepts of structure It's a reference book。 Which means it is not supposed to be read line by line。I read through first chapter carefully and fast read chapter 2。 Not gonna write a text editor myself。 Then very quickly scan through the catalog part。 The gem of this book is the classification of all the common patterns。 And many tables and graphs which give a big picture feeling about those patterns。 Besides, I catched many new terms from this book。 Toolkit framework etc。 Great help to building concepts of structure design。 。。。more

Bradley

A Classic!

Tom Mostyn

I first read this book in the mid to late 90's and have read it many times since gaining new knowledge each time。 Often referred to the GoF (Gang of Four) patterns book, this book is monumental in its contribution to the use of design patterns in software design。 The core concepts expressed in this book are timeless。 A "must-have" for any serious software engineer/designer。 I first read this book in the mid to late 90's and have read it many times since gaining new knowledge each time。 Often referred to the GoF (Gang of Four) patterns book, this book is monumental in its contribution to the use of design patterns in software design。 The core concepts expressed in this book are timeless。 A "must-have" for any serious software engineer/designer。 。。。more

Samuel

We used this book in college。 Very useful for OOP

Giovani Facchini

Had mixed feelings with this book because it is really boring。 From the books I recently read, this is in the top of the boring list。 Maybe it is because it is a ancient book。The patterns are valuable and still in use today。 It is worth having a look at them。However, the type of software I have worked in my entire career does not fit with any of the examples in the book。 So, it was hard to make a connection between what I have faced before, the patterns, its utility and how it would have solved Had mixed feelings with this book because it is really boring。 From the books I recently read, this is in the top of the boring list。 Maybe it is because it is a ancient book。The patterns are valuable and still in use today。 It is worth having a look at them。However, the type of software I have worked in my entire career does not fit with any of the examples in the book。 So, it was hard to make a connection between what I have faced before, the patterns, its utility and how it would have solved a specific problem。 。。。more

Osmarpetry

Very good book, but I also read the https://refactoring。guru/design-patterns and https://www。youtube。com/channel/UCbF-。。。 to help me to understand better the pattern。 The mainly problem is the old programming language used to explain the design pattern。 Very good book, but I also read the https://refactoring。guru/design-patterns and https://www。youtube。com/channel/UCbF-。。。 to help me to understand better the pattern。 The mainly problem is the old programming language used to explain the design pattern。 。。。more

C。 Hinsley

Sorry。 I just don't like OOP very much。 Sorry。 I just don't like OOP very much。 。。。more

Matthew

A classic。I first read this book a decade or two ago, and I recently got feedback that I should read it again。 It's nice to be more experienced and have more perspective on the text, instead of just taking everything as is。 Some of the patterns (like Builder and Observer) I've seen used countless times。 Other patterns, like Memento and Mediator, I've never seen in the real world。If you're serious about software engineering read this book。I wouldn't recommend this book for beginners - you should A classic。I first read this book a decade or two ago, and I recently got feedback that I should read it again。 It's nice to be more experienced and have more perspective on the text, instead of just taking everything as is。 Some of the patterns (like Builder and Observer) I've seen used countless times。 Other patterns, like Memento and Mediator, I've never seen in the real world。If you're serious about software engineering read this book。I wouldn't recommend this book for beginners - you should have a few years experience with at least one programming language, preferably something compiled like C/C++/Java。 。。。more

Bemmu

Reading this as a younger programmer probably hurt me back then, as I immediately wanted to put them into practice and stuff some pattern from the book into whatever code I was writing, probably making it messier as a result。 Luckily I couldn't understand many of the patterns back then, so the damage was limited。 Reading this as a younger programmer probably hurt me back then, as I immediately wanted to put them into practice and stuff some pattern from the book into whatever code I was writing, probably making it messier as a result。 Luckily I couldn't understand many of the patterns back then, so the damage was limited。 。。。more

Mostafa Esheba

amazing book

Vladimirs Kotovs

I have used this book as one of the primary references in 2007 for my bachelor thesis。 Great book, although given its age I do not suggest reading it in 2020。

Nikolay

https://nikolay。dubina。dev/26-oop/pos。。。 https://nikolay。dubina。dev/26-oop/pos。。。 。。。more

Jonathan MacDonald

This is a must read for software developers。 It is sometimes hard to understand a pattern when initially learning it, but once it clicks, this is a good reminder on how the pattern is structured。

Gaurav Srivastava

Canonical Book, Explains Design Pattern Brilliantly

David Hunter

Read Head First Design Patterns instead。 This one is dry, and outdated to some degree。

Diogo Muller

This is a catalog of many design patterns, with examples and explanations。 First of all, yes, this was a very important book for it's time, and it's used as reference for many other books even nowadays。However, it's hard to say it should be an essential read for every developer。 Many of the patterns described here either evolved, or are way outdated and even not necessary nowadays。 An interesting read for it's historical value, but there are better resources if you just want to learn more about This is a catalog of many design patterns, with examples and explanations。 First of all, yes, this was a very important book for it's time, and it's used as reference for many other books even nowadays。However, it's hard to say it should be an essential read for every developer。 Many of the patterns described here either evolved, or are way outdated and even not necessary nowadays。 An interesting read for it's historical value, but there are better resources if you just want to learn more about Design Patterns in a more modern way。 。。。more